In addition to providing relatively high bandwidth network services to corporate clients, network service providers are moving to offer bundled multimedia services, e.g., voice, video, and data, to residential customers. This move to bundled multimedia services has placed demands on the networking equipment at the edge of the network. Quality of Service (QoS) control is critical to providing bundled multimedia services and one important QoS function involves controlling the data rate provided to each user for each different traffic type. Controlling the data rate provided to each user for each different traffic type involves admission control and/or bandwidth enforcement mechanisms, both of which are generally referred to as traffic policing or traffic metering.
In a typical traffic policing application, a service provider defines a traffic profile to which a customer's traffic needs to conform. Network traffic that is classified into the profile is then passed, marked to a lower priority, dropped, and/or identified as exceeding a bandwidth limitation. Some commonly used policing algorithms include single rate Three Color Marker (srTCM), two rate Three Color Marker (trTCM), and Metro Ethernet Forum (MEF) service policer. Additional policing algorithms include Frame Relay time-based, ATM leaky bucket, and vendor proprietary policing algorithms.
In first generation network equipment, traffic policing was typically implemented in software. Although software-based policing solutions are flexible, they are not able to process network traffic at the speeds required for current and emerging networks. In order to support the throughput requirements of current and emerging networks, policing solutions have been implemented in hardware. Hardware-based policing solutions reduce a policing algorithm to a set of condition primitives and corresponding action primitives in which the action primitives are generated in response to the condition primitives. Condition primitives may include, for example, a series of bits that indicate the incoming traffic color, whether enough credits are available to forward a packet, and whether a credit bucket is full. Action primitives may include, for example, a series of bits that indicate whether a credit bucket should be decremented to account for a forwarded packet, whether a packet should be dropped, or whether a credit bucket should be refreshed.
In conventional hardware-based policing solutions, combinational logic, which is designed to implement one specific policing algorithm, is fabricated into a semiconductor device. The combinational logic has no memory and is fixed at the circuit level. Because the combinational logic can only implement one policing algorithm, a different set of combinational logic is required to implement each different policing algorithm. Additionally, once a semiconductor device is fabricated, the combinational logic cannot be changed to implement a different policing algorithm. While implementing a policing algorithm using fixed combinational logic enables high speed policing of network traffic, fixed combinational logic does not provide the flexibility to adapt to support different policing algorithms.